'''给你一个字符串数组，请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的字母得到的一个新单词，所有源单词中的字母都恰好只用一次。

 

示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/group-anagrams
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。'''
import collections
class Solution(object):
    def groupAnagrams(self, strs):
        """
        :type strs: List[str]
        :rtype: List[List[str]]
        """
        res = {}
        lis = {}
        i = 0
        for str in strs:
            key = collections.Counter(str)
            if key not in lis.values():
                lis[i] = key
                res[i] = [str]
                i += 1
            else:
                index = list(lis.values()).index(key)
                res[index].append(str)
        return list(res.values())

strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
Solution().groupAnagrams(strs)